In switch devices, data received by a switch device over a port is queued in a queue of a buffer associated with the switch device. From these queues, the data may be routed to an intended destination device. However, if the queues are congested, the data may be dropped. In such a situation, the data may be retransmitted by the source device to the destination device (e.g., according to transmission control protocol/internet protocol (TCP/IP)). The data may continue to be dropped at the switch device if the queues remain congested, and therefore the data may repeatedly be retransmitted until space in the buffer associated with the switch becomes available. However, repeatedly dropping and retransmitting data may reduce channel efficiency and degrade user experience.
Switch devices (and other network devices) may attempt to alleviate dropped packets by utilizing backpressure mechanisms, e.g. PAUSE frames (e.g., as defined in IEEE 802.3 specification) or, priority based flow control (PFC) frames (e.g., as defined in IEEE 802.1Qbb). However, when the (802.3) PAUSE mechanism is deployed all traffic from the device sourcing traffic may be in backpressure, even when only a single switch egress queue is in backpressure. The PFC mechanism enables per traffic class backpressure; however, when a single queue on the particular egress port of the particular traffic class is in backpressure the source device cannot send traffic to any other switch port queue that is of the same traffic class.
Furthermore, when PAUSE or PFC mechanisms are deployed, in order to guarantee lossless behavior at least two times the maximum transmission unit (MTU) for the particular network must be reserved in the buffer on a per port and/or per queue basis, in addition to the buffer space required for the regular network traffic. This may lead to inefficient switch packet buffer utilization when the reserved buffer overhead cannot be used by queues having heavy traffic, which may eventually result in dropped packets.